home *** CD-ROM | disk | FTP | other *** search
/ Programming Windows 95 / Programming Windows 95.iso / code / CHAP15 / FORMFEED.C < prev    next >
Encoding:
C/C++ Source or Header  |  1996-01-01  |  1.2 KB  |  38 lines

  1. /*---------------------------------------------
  2.    FORMFEED.C -- Advances printer to next page
  3.                  (c) Charles Petzold, 1996
  4.   ---------------------------------------------*/
  5.  
  6. #include <windows.h>
  7.  
  8. HDC  GetPrinterDC (void) ;
  9.  
  10. int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
  11.                     LPSTR lpszCmdLine, int iCmdShow)
  12.      {
  13.      static DOCINFO di       = { sizeof (DOCINFO), "FormFeed", NULL } ;
  14.      HDC            hdcPrint = GetPrinterDC () ;
  15.  
  16.      if (hdcPrint != NULL)
  17.           {
  18.           if (StartDoc (hdcPrint, &di) > 0)
  19.                if (StartPage (hdcPrint) > 0 && EndPage (hdcPrint) > 0)
  20.                     EndDoc (hdcPrint) ;
  21.  
  22.           DeleteDC (hdcPrint) ;
  23.           }
  24.      return FALSE ;
  25.      }
  26.  
  27. HDC GetPrinterDC (void)
  28.      {
  29.      PRINTER_INFO_5 pinfo5[3] ; 
  30.      DWORD          dwNeeded, dwReturned ;
  31.  
  32.      if (EnumPrinters (PRINTER_ENUM_DEFAULT, NULL, 5, (LPBYTE) pinfo5,
  33.                        sizeof (pinfo5), &dwNeeded, &dwReturned))
  34.           return CreateDC (NULL, pinfo5[0].pPrinterName, NULL, NULL) ;
  35.  
  36.      return 0 ;            // EnumPrinters failed, so return null hdc
  37.      }
  38.